import Vue from 'vue'
import Vuex from 'vuex'
import getters from './getters'

Vue.use(Vuex)

// 传递要搜索的目录，指示是否也应搜索子目录的标志以及用于匹配文件的正则表达式。
const modulesFiles = require.context('./modules', true, /\.js$/)
// require.context(文件夹位置,是否向下递归,匹配的文件)
// 找到所有js文件的路径

// 合并子模块 批量导入了所有的子模块
const modules = modulesFiles.keys().reduce((modules, modulePath) => {
  const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, '$1')
  const value = modulesFiles(modulePath)
  modules[moduleName] = value.default
  return modules
}, {})

export default new Vuex.Store({
  getters,
  modules
})
